import { request } from '@/utils/service'

/**
 * 获取班级列表（分页查询）
 * 接口描述: 支持分页查询、搜索和年级筛选
 * 接口可选项:
 * page-页码(默认1)
 * page_size-每页大小(默认10，最大100)
 * search-搜索关键词(按班级名称模糊查询)
 * grade-年级筛选
 * @param {Object} params 查询参数
 * @returns Promise
 */
export function getClassesApi(params) {
  return request({
    url: "classes",
    method: "get",
    params
  })
}

/**
 * 添加班级
 * 接口描述: 创建新的班级
 * 接口必填项:
 * name-班级名称
 * grade-年级
 * @param {Object} data 班级数据
 * @returns Promise
 */
export function addClassApi(data) {
  return request({
    url: "classes",
    method: "post",
    data
  })
}

/**
 * 更新班级信息
 * 接口描述: 更新班级基本信息
 * 接口必填项:
 * id-班级ID
 * name-班级名称
 * grade-年级
 * @param {number} id 班级ID
 * @param {Object} data 班级数据
 * @returns Promise
 */
export function updateClassApi(id, data) {
  return request({
    url: `classes/${id}`,
    method: "put",
    data
  })
}

/**
 * 删除班级（级联删除）
 * 接口描述: 删除班级及其相关的学生和成绩记录
 * 接口必填项:
 * id-班级ID
 * @param {number} id 班级ID
 * @returns Promise
 */
export function deleteClassApi(id) {
  return request({
    url: `classes/${id}`,
    method: "delete"
  })
}

/**
 * 获取班级选项列表
 * 接口描述: 获取班级选项列表，用于下拉选择框
 * @returns Promise
 */
export function getClassOptionsApi() {
  return request({
    url: "classes/options",
    method: "get"
  })
}

// 保留原有的创建班级接口作为兼容性别名
export const createClassApi = addClassApi
